package com.heima.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.heima.mapper.SkuClassMapper;
import com.heima.mapper.SkuMapper;
import com.heima.pojo.sku.Sku;
import com.heima.pojo.sku.SkuPageResult;
import com.heima.pojo.sku.SkuQueryParam;
import com.heima.pojo.sku_class.SkuClass;
import com.heima.service.SkuService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import java.time.LocalDateTime;
import java.util.List;

@Slf4j
@Service
public class SkuServiceImpl implements SkuService {
    @Autowired
    private SkuMapper skuMapper;
    @Autowired
    private SkuClassMapper skuClassMapper;

    /**
     * 新增商品
     *
     * @param sku
     */
    @Override
    public void addSku(Sku sku) {
        sku.setIsDiscount(Sku.DISCOUNT_NO);
        sku.setCreateTime(LocalDateTime.now());
        sku.setUpdateTime(LocalDateTime.now());
        long timeId = System.currentTimeMillis();
        System.out.println("时间id"+timeId);
        sku.setSkuId(timeId + "");
        skuMapper.addSku(sku);
    }

    /**
     * 商品搜索
     *
     * @param skuQueryParam
     * @return
     */
    @Override
    public SkuPageResult searchSku(SkuQueryParam skuQueryParam) {
        log.info("商品搜索参数：{}", skuQueryParam);
        PageHelper.startPage(skuQueryParam.getPageIndex(), skuQueryParam.getPageSize());
        Page<Sku> page = skuMapper.searchSku(skuQueryParam);
        List<Sku> result = page.getResult();
        if (!CollectionUtils.isEmpty(result)){
            for (Sku sku : result) {
                String classId = sku.getClassId();
                SkuClass skuClass = skuClassMapper.getById(classId);
                sku.setSkuClass(skuClass);
            }
        }
        return new SkuPageResult(page.getTotal(), page.getResult());
    }
    /**
     * 根据商品id查询商品信息
     * @param skuId
     * @return
     */
    /*@Override
    public Sku getSkuById(String skuId) {
        log.info("根据商品id查询商品信息:{}", skuId);
        System.out.println("根据商品id查询商品信息"+skuId);
        return skuMapper.getById(skuId);
    }*/

    /**
     * 修改商品
     *
     */
    @Override
    public void updateSku(Sku sku) {
        log.info("修改商品:{}", sku);
        sku.setUpdateTime(LocalDateTime.now());
        skuMapper.updateSku(sku);
    }


}
